function myFunction()
{
    document.getElementById("demo").innerHTML="我的第一个 JavaScript 函数";
    window.alert(5+6);
    console.log("yes");
    console.log(5+6);
    document.write("yes");
    document.write(Date());
    document.getElementById("demo").innerHTML="yes";

    let x, length;
    x = 5;
    length = 6;

    let a = 5;
    let b = 6;
    let c = a + b;

    const lastname = "Doe", age = 30, job = "carpenter";

    // 值类型(基本类型)：字符串（String）、数字(Number)、布尔(Boolean)、对空（Null）、未定义（Undefined）、Symbol。
    // 引用数据类型：对象(Object)、数组(Array)、函数(Function)。

    // let cars = [];
    // let cars = new Array();
    // cars[0]="Saab";
    // cars[1]="Volvo";
    // cars[2]="BMW";
    // let cars = new Array("Saab", "Volvo", "BMW");
    let cars = ["Saab", "Volvo", "BMW"];
    let person={firstname:"John", lastname:"Doe", id:5566};
    console.log(person.lastname);
    window.alert(person["lastname"]);
    let carTwo = null;
    let carName = new String;
    let carThree = new Object;

    // 对象键值对的写法类似于：
    // PHP 中的关联数组
    // Python 中的字典
    // C 语言中的哈希表
    // Java 中的哈希映射
    // Ruby 和 Perl 中的哈希表

    let personOne = {
        firstName : "John",
        lastName  : "Doe",
        age       : 50,
        eyeColor  : "blue"
    };
    document.getElementById("demo").innerHTML =
        person.firstName + " 现在 " + person.age + " 岁。";

    let personTwo = {
        firstName: "John",
        lastName : "Doe",
        id : 5566,
        fullName : function()
        {
            return this.firstName + " " + this.lastName;
        }
    };
    document.getElementById("demo").innerHTML = person.fullName();

    let u = "John";
    let y = new String("John");
    console.log(typeof x); // 返回 String
    console.log(typeof y); // 返回 Object
    document.getElementById("demo").innerHTML =typeof x + " " + typeof y;
    // === 为绝对相等，即数据类型与值都必须相等。
    document.getElementById("demo").innerHTML = y===u;

    let d=new Date().getDay();
    switch (d)
    {
        case 6:x="今天是星期六";
            break;
        case 0:x="今天是星期日";
            break;
        default:
            x="期待周末";
    }
    document.getElementById("demo").innerHTML=x;

    cars=["BMW","Volvo","Saab","Ford"];
    for (let i=0;i<cars.length;i++){
        document.write(cars[i] + "<br>");
    }

    cars=["BMW","Volvo","Saab","Ford"];
    list:{
        document.write(cars[0] + "<br>");
        document.write(cars[1] + "<br>");
        document.write(cars[2] + "<br>");
        break list;
        document.write(cars[3] + "<br>");
        document.write(cars[4] + "<br>");
        document.write(cars[5] + "<br>");
    }

    let fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.getElementById("demo").innerHTML = this.isArray(fruits);

    let myDate = new Date();
    document.getElementById("demo").innerHTML = this.isDate(myDate);

    let t = 15 * 5;
    debugger;
    document.getElementById("demo").innerHTML = t;

}


function isArray(myArray) {
    // 一元运算符 +
    // Operator + 可用于将变量转换为数字：
    let y = "5";      // y 是一个字符串
    let x = + y;      // x 是一个数字
    return myArray.constructor.toString().indexOf("Array") > -1;
}

function isDate(myDate) {
    let y = "John";   // y 是一个字符串
    let x = + y;      // x 是一个数字 (NaN)
    return myDate.constructor.toString().indexOf("Date") > -1;
}

// 	在 JavaScript 中，很多时候，你需要避免使用 new 关键字。
// let youFunction = new Function("a", "b", "return a * b");
// let x = youFunction(4, 3);
let youFunction = function (a, b) {return a * b};
let x = youFunction(4, 3);

(function () {
    let x = "Hello!!";      // 我将调用自己
})();


